https://bitsandtheorems.com/the-simplicity-of-prolog/